home *** CD-ROM | disk | FTP | other *** search
/ World of Education / World of Education.iso / world_s / sm20a.zip / PROBLEM.TXT < prev    next >
Text File  |  1991-10-28  |  43KB  |  1,354 lines

  1.     Here are some problems that Maple and Mathematica cannot 
  2. solve, but SymbMath can do.
  3.  
  4. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  5.  
  6.     SymbMath 1.3B can solve the following problems #0 to #5, but 
  7. cannot solve #6 (not output). 
  8.  
  9. -------------------------------------------------------------
  10.  
  11. Article 1261 of sci.math.symbolic:
  12. >From: FC03@NS.CC.LEHIGH.EDU (Frederick W. Chapman)
  13. Newsgroups: sci.math.symbolic
  14. Subject: Yes, but why can't Maple do THIS stuff???
  15. Date: 28 Jun 91 03:06:32 GMT
  16.  
  17.  
  18. [If you suspect that any post which has an ABSTRACT is going to be a long
  19. one, you're absolutely right!  I hope this post proves worthy of the
  20. "bandwidth" it has consumed.]
  21.  
  22.  
  23.                      **********  ABSTRACT  **********
  24.  
  25. Maple V still has some serious problems in regard to how it evaluates (or
  26. fails to evaluate) integrals, limits, etc.  of expressions involving a
  27. symbolic parameter.  Half a dozen concrete examples are included to support
  28. this claim.
  29.  
  30.  
  31.                    **********  INTRODUCTION  **********
  32.  
  33. Using Maple V for 386 DOS PCs, I have been able to confirm that the
  34.  
  35.       signum(a) := 1;
  36.  
  37. trick (which declares 'a' to be non-negative) does allow Maple to complete
  38. the evaluation of some integrals which would otherwise (correctly) remain
  39. unevaluated.  For example, the following has been discussed recently on
  40. sci.math.symbolic:
  41.  
  42.  
  43. EXAMPLE #0:  Integral previously discussed on USENET.
  44.  
  45. # Unevaluated integral:
  46.  
  47. > int(exp(-a * x^2), x=0..infinity);
  48.  
  49.                              infinity
  50.                                 /
  51.                                |               2
  52.                                |      exp(- a x ) dx
  53.                                |
  54.                               /
  55.                               0
  56.  
  57. # Declare 'a' non-negative:
  58.  
  59. > signum(a) := 1;
  60.  
  61.                                  signum(a) := 1
  62.  
  63. # The same integral is now evaluated fully:
  64.  
  65. > int(exp(-a * x^2), x=0..infinity);
  66.  
  67.                                          1/2
  68.                                        Pi
  69.                                    1/2 -----
  70.                                          1/2
  71.                                         a
  72.  
  73.  
  74. Although this trick works fine with *this* example, I have found a
  75. disturbingly large number of even simpler examples in which Maple handles the
  76. symbolic parameter *incorrectly*, even when the parameter is declared
  77. non-negative via the 'signum' function.  A list of these examples follows.
  78.  
  79. Please post any comments, explanations, work-arounds, or new features planned
  80. in future releases of the software, as pertains to these examples.
  81.  
  82.  
  83. **********  EXAMPLE #1:  Unevaluated proper definite integral.  **********
  84.  
  85. # Despite the fact that 'n' is declared non-negative...
  86.  
  87. > signum(n) := 1;
  88.  
  89.                                  signum(n) := 1
  90.  
  91. # ...this simple proper definite integral (that any freshman calculus student
  92. # can evaluate!) is left unevaluated:
  93.  
  94. > int(x^n, x=0..1);
  95.  
  96.                                      1
  97.                                      /
  98.                                     |   n
  99.                                     |  x  dx
  100.                                     |
  101.                                    /
  102.                                    0
  103.  
  104. For shame!  The hypothesis n >= 0 is even stronger than it really needs to be,
  105. since the improper integral resulting when n < 0 converges as long as n > -1.
  106. The fact that the integrand is not well-defined at x = 0 in the case n = 0
  107. does not present a problem since the integrand *is* well-defined on the rest
  108. of the interval.  The integrand agrees with a function which is continuous on
  109. the entire interval (the constant function 1) except at one point (x=0), and
  110. is thus Riemann integrable.
  111.  
  112. Note that this problem does not occur when different limits of integration
  113. are used with the same integrand:
  114.  
  115. # Different, but constant limits of integration:
  116.  
  117. > int(x^n, x=-1..1);
  118.  
  119.                                           (n + 1)
  120.                                 1     (-1)
  121.                               ----- - -----------
  122.                               n + 1      n + 1
  123.  
  124.  
  125. # Symbolic limits of integration:
  126.  
  127. > int(x^n, x=a..b);
  128.  
  129.                                (n + 1)    (n + 1)
  130.                               b          a
  131.                               -------- - --------
  132.                                 n + 1      n + 1
  133.  
  134.  
  135. That this integral was evaluated -- but the original integral was not -- is
  136. in a way surprising.  This integral can be reduced to the original integral by
  137. setting 'a' to 0 and 'b' to 1.  If there was something "wrong" with the
  138. original, more specialized integral, then the same thing is "wrong" with
  139. this, more generalized integral.
  140.  
  141.  
  142. **********  EXAMPLE #2:  Unevaluated one-sided limit.   **********
  143.  
  144. The problem in the previous example appears to have something to do with the
  145. fact that one of the limits of integration is 0.  Let us try to circumvent the
  146. problem by replacing 0 with a parameter 'eps', and then taking the limit as
  147. 'eps' goes to 0 from above.
  148.  
  149. # Now the integral is evaluated...
  150.  
  151. > int(x^n, x=eps..1);
  152.  
  153.                                           (n + 1)
  154.                                  1     eps
  155.                                ----- - ----------
  156.                                n + 1      n + 1
  157.  
  158. # ...but the one-sided limit...
  159.  
  160. > limit(", eps=0, right);
  161.  
  162.                                                (n + 1)
  163.                                       1     eps
  164.                           limit     ----- - ----------
  165.                           eps -> 0+ n + 1      n + 1
  166.  
  167. # ...remains unevaluated...
  168.  
  169. > simplify(");
  170.  
  171.                                                (n + 1)
  172.                                       - 1 + eps
  173.                           limit     - ----------------
  174.                           eps -> 0+         n + 1
  175.  
  176.  
  177. # ...no matter what we do!
  178.  
  179. > eval(");
  180.  
  181.                                                (n + 1)
  182.                                       - 1 + eps
  183.                           limit     - ----------------
  184.                           eps -> 0+         n + 1
  185.  
  186.  
  187. Double shame on you, Maple!  (I'm starting to talk to the software -- maybe
  188. I've been doing this for a living a little too long?) By taking the limit
  189. from the right side, we impose the restriction that 'eps' is strictly
  190. positive, which guarantees that the expression 'eps^(n+1)' is defined for all
  191. values of 'eps' and 'n' under consideration.  Since 'n' is greater than or
  192. equal to 0, 'n + 1' is strictly positive, which guarantees that the limit as
  193. 'eps' goes to 0 from above of 'eps^(n+1)' exists, and has a value which is
  194. independent of 'n' -- the limit equals 0 for all non-negative 'n'.  Unlike
  195. EXAMPLE #1, there is not even a hint of any 0^0 difficulties to be resolved
  196. in this example.  There is no reason to leave this limit unevaluated.
  197.  
  198.  
  199. **********  EXAMPLE #3:  Cavalier evaluation of 0^n.  **********
  200.  
  201. Although Maple refrains from attempting to evaluate certain integrals until
  202. it knows the signs of parameters that determine convergence (and sometimes
  203. refrains from evaluation even when the signs are known and there are no
  204. problems with convergence), Maple does *not* hesitate to evaluate certain
  205. expressions that contain symbolic parameters in circumstances when it
  206. *should* refrain from performing said evaluation.
  207.  
  208. # 'n' has been declared non-negative, but could still assume the value 0
  209. # without contradicting this declaration of sign.  (signum(0) = 1, by
  210. # definition in Maple V; see online help on 'signum'.)  Nevertheless, Maple
  211. # evaluates the following expression without considering this possibility:
  212.  
  213. > 0^n;
  214.  
  215.                                        0
  216.  
  217. # Maple flags the error only when 'n' is replaced by the constant 0:
  218.  
  219. > 0^0;
  220. Error, 0^0 is undefined
  221.  
  222.  
  223. # Similarly, Maple evaluates the following expression without considering
  224. # that the exponent could be negative, which would render the expression
  225. # undefined:
  226.  
  227. > 0^(n-1);
  228.  
  229.                                        0
  230.  
  231. # Maple flags the error only when a constant, negative exponent is given:
  232.  
  233. > 0^(-1);
  234. Error, division by zero
  235.  
  236. I realize that I am putting it bluntly, but here goes anyway:  If no high
  237. school student should be allowed to make these kinds of mistakes (and they do
  238. qualify as "mistakes"), then Maple ought not to make them either.
  239.  
  240.  
  241. *********  EXAMPLE #4:  Cavalier evaluation of indefinite integral.  *********
  242.  
  243. # The sign of 'k' has not been declared; hence, the possiblity that 'k' could
  244. # assume the value -1 cannot be ruled out in this indefinite integral:
  245.  
  246. > int(x^k, x);
  247.  
  248.                                      (k + 1)
  249.                                     x
  250.                                     --------
  251.                                       k + 1
  252.  
  253. This expression for the antiderivative of 'x^k' is correct *only* if 'k' is
  254. not equal to -1; this cannot be taken for granted, since no information has
  255. been provided concerning the sign of 'k', or the range of values which 'k'
  256. may assume.  This answer is totally incorrect when 'k' equals -1.
  257.  
  258. This also qualifies as a "mistake", and should be corrected.  Let us hold
  259. Maple to at least the same standard that we expect every Freshman Calculus
  260. student to uphold.
  261.  
  262.  
  263. **********  EXAMPLE #5:  Insufficient knowledge of growth rates.  **********
  264.  
  265. Every student of elementary calculus eventually learns that "the exponential
  266. function 'exp(x)' increases to infinity faster than any power of 'x', as 'x'
  267. goes to infinity."  More precisely, the limit as 'x' goes to infinity of
  268. 'x^k/exp(x)' is 0 for *all* values of 'k' (positive, zero, or negative); or,
  269. in "little o" notation, 'x^k = o(exp(x))' as 'x' goes to infinity, regardless
  270. of the value of 'k'.  Maple certainly ought to know this important elementary
  271. result, but does not.
  272.  
  273.  
  274. # The following limit is left unevaluated:
  275.  
  276. > limit(x^k/exp(x), x=infinity);
  277.  
  278.                                                k
  279.                                               x
  280.                               limit         ------
  281.                               x -> infinity exp(x)
  282.  
  283.  
  284. We might ask if Maple knows this result for specific (constant) values of
  285. the symbolic parameter 'k'.  The answer is a QUALIFIED "yes".
  286.  
  287.  
  288. # Maple knows the result for 'k' equal to 10^8...
  289.  
  290. > limit(x^(10^8)/exp(x), x=infinity);
  291.  
  292.                                        0
  293.  
  294.  
  295. # ...and Maple knows the result for 'k' equal to 10^9...
  296.  
  297. > limit(x^(10^9)/exp(x), x=infinity);
  298.  
  299.                                        0
  300.  
  301.  
  302. # ...BUT, Maple seems to FORGET the result when 'k' equals 10^10...
  303.  
  304. > limit(x^(10^10)/exp(x), x=infinity);
  305.  
  306.                                           10000000000       Maple:  "Duh, I
  307.                                          x                  really have no
  308.                            limit         ------------       idea.  Thanks for
  309.                            x -> infinity    exp(x)          asking."  :-)
  310.  
  311.  
  312. Let's revise all the calculus textbooks so that they read "the limit is 0 for
  313. exponents 'k' less than 10^10; beyond that, no one really knows!"  Just
  314. kidding!!!  I am a kidder!!!
  315.  
  316.  
  317. **********  EXAMPLE #6:  Maple's child-like obstinacy.   **********
  318.  
  319. # Recall that 'a' and 'n' were declared non-negative earlier in the Maple
  320. # session (in EXAMPLES #0 and #1).  The following improper integral (the
  321. # Laplace transform of 'x^n') converges, and is fully evaluated by Maple:
  322.  
  323. > int(x^n * exp (-a * x), x=0..infinity);
  324.  
  325.                                    GAMMA(n) n
  326.                                    ----------
  327.                                        n
  328.                                       a  a
  329.  
  330.  
  331. # Suppose that we now attempt to compute a similar integral, but forget to
  332. # first declare the signs of the symbolic parameters:
  333.  
  334. > int(x^m * exp (-b * x), x=0..infinity);
  335.  
  336.                             infinity
  337.                                /
  338.                               |       m
  339.                               |      x  exp(- b x) dx
  340.                               |
  341.                              /
  342.                              0
  343.  
  344.  
  345. # As expected, the integral remains unevaluated.  Now declare the signs of
  346. # the symbolic parameters:
  347.  
  348. > signum(b) := 1;
  349.  
  350.                                  signum(b) := 1
  351.  
  352. > signum(m) := 1;
  353.  
  354.                                  signum(m) := 1
  355.  
  356.  
  357. # Upon attempting to compute the integral a second time...
  358.  
  359. > int(x^m * exp (-b * x), x=0..infinity);
  360.  
  361.                             infinity                        Maple:  "I WON'T
  362.                                /                            do it, and YOU
  363.                               |       m                     CAN'T MAKE ME!
  364.                               |      x  exp(- b x) dx       NYAH, NYAH,
  365.                               |                             NYAH!!"
  366.                              /
  367.                              0                              (Sure told us :-)
  368.  
  369. # ...THE INTEGRAL CONTINUES TO REMAIN UNEVALUATED, despite the fact that
  370. # the signs of the parameters 'b' and 'm' were declared PRIOR to the second
  371. # attempt at computation.
  372.  
  373. Apparently, Maple is unwilling to forgive us for asking it to solve an
  374. ill-posed problem a few moments ago.  Quite typical behavior for a 10 year
  375. old!  However, if we ask it nicely, Maple will do another computation of
  376. the same integral for us.
  377.  
  378. # Declare the signs of the symbolic parameters BEFORE EVER ASKING Maple to
  379. # compute the specified integral:
  380.  
  381. > signum(p) := 1;
  382.  
  383.                                  signum(p) := 1
  384.  
  385. > signum(q) := 1;
  386.  
  387.                                  signum(q) := 1
  388.  
  389.  
  390. # Now ask his/her spoiled bratness to furnish us with the desired answer:
  391.  
  392. > int(x^p * exp (-q * x), x=0..infinity);
  393.  
  394.                                    GAMMA(p) p
  395.                                    ----------
  396.                                        p
  397.                                       q  q
  398.  
  399. All it took was a little diplomacy!
  400.  
  401.  
  402.                       **********  CONCLUSIONS  **********
  403.  
  404. Although Maple is the symbolic computation package that I most prefer to use
  405. (over Mathematica, MACSYMA, Reduce, etc.), I am very distressed at Maple's
  406. tendency to compute when it ought *not* to compute, and to *not* compute when
  407. it *ought* to compute in these examples that involve a symbolic parameter.
  408. Clearly, the 'signum(<variable>) := 1;' technique for declaring non-negative
  409. variables has *not* been implemented in a complete and comprehensive manner.
  410. These deficiencies must be addressed.
  411.  
  412. I know that I, for one, intend to use these examples as a personal benchmark
  413. to measure the progress made by future releases of Maple.  I would encourage
  414. the reader to do likewise, and to complain to the Maple developers if
  415. progress is not made.
  416.  
  417.  
  418. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  419. Frederick W. Chapman (N3IJC)          Campus Phone:  (215) 758-3218
  420. User Services Group                   Network Server UserID:  FC03
  421. Computing Center                      Internet:  FC03@NS.CC.LEHIGH.EDU
  422. Lehigh University                     Bitnet:  FC03@LEHIGH
  423.  
  424. ----------------------------------------------------------------
  425.  
  426.     On the following, "->" is the SymbMath prompt for input, 
  427. sgn(a^0.5)=1 means a^0.5 > 0, "last" means the last output.
  428.  
  429. ************* Example #0 ******************
  430.  
  431. ->inte(exp(-a*x^2), (x from 0 to inf))
  432.  
  433. 0.5*a^(-0.5)*pi^0.5*erf(sgn(sgn(a^0.5))*inf)
  434. ->subs(sgn(a^0.5)=1 to last)
  435.  
  436. 0.5*a^(-0.5)*pi^0.5
  437. ->sgn(a^0.5)=1
  438.  
  439. sgn(a^0.5) = 1
  440. ->inte(exp(-a*x^2), (x from 0 to inf))
  441.  
  442. 0.5*a^(-0.5)*pi^0.5
  443.  
  444. *********** Example #1 *********************
  445.  
  446. ->sgn(1+n)=1
  447.  
  448. sgn(1 + n) = 1
  449. ->inte(x^n, (x from 0 to 1))
  450.  
  451. 1/(1 + n)
  452.  
  453. *********** Example #2 **********************
  454.  
  455. ->inte(x^n, (x from eps to 1))
  456.  
  457. 1/(1 + n) - eps^(1 + n)/(1 + n)
  458. ->subs(eps=0 to last)
  459.  
  460. 1/(1 + n)
  461.  
  462. *********** Example #3 **********************
  463.  
  464. ->sgn(n)=1
  465.  
  466. sgn(n) = 1
  467. ->0^n
  468.  
  469. 0
  470. ->0^-n
  471.  
  472. undefined: 1/0
  473. ->0^0
  474.  
  475. undefined: 0^0
  476.  
  477. ********* Example #4 **********************
  478.  
  479. ->inte(x^k*d(x))
  480.  
  481. Constant + x^(1 + k)/(1 + k)
  482. ->subs(k=-1 to last)
  483.  
  484. Constant + undefined: 1/0
  485.  
  486. *********** Example #5 **********************
  487.  
  488. ->lim(x=inf, x^k/exp(x))
  489.  
  490. 0
  491. ->lim(x=inf, x^(10^10)/exp(x))
  492.  
  493. 0
  494. ->lim(x=inf, x^(10^10000)/exp(x))
  495.  
  496. 0
  497.  
  498. ************ Example #6 *********************
  499.  
  500. ->inte(x^n*exp(-a*x), (x from 0 to inf))
  501.  
  502. %%%%%%%%%%%%%%%%%%%%
  503.  
  504.     In version 1.3 of SymbMath, SymbMath can do discontinuous
  505. integration (i.e. Cauchy Integration) to solve the following problems. 
  506.  
  507. -------------------------------------------------------------
  508.  
  509. In article <1991Jul8.211111.3068@colorado.edu>, 
  510. sherod@vieta.Colorado.EDU (Scott Herod) writes:
  511.  
  512. > MATHEMATICA happily computes the integral of 1/x from -1 to 1.
  513. > Mathematica (sun3.fpa) 1.2 (November 6, 1989) [With pre-loaded data]
  514. > by S. Wolfram, D. Grayson, R. Maeder, H. Cejtin,
  515. >    S. Omohundro, D. Ballman and J. Keiper
  516. > with I. Rivin and D. Withoff
  517. > Copyright 1988,1989 Wolfram Research Inc.
  518. >  -- Terminal graphics initialized --
  519. > In[1]:= Integrate[1/x,{x,-1,1}]
  520. > Out[1]= -Log[-1]
  521. > I certainly hope they have this problem fixed in version 2.0.
  522. > Scott Herod
  523. > sherod@newton.colorado.edu
  524.  
  525. ------------------------------------------------------------------------
  526.  
  527. >From: abbasi@smaug.enet.dec.com (Nasser ABBASI)
  528. >Date: 8 Jul 91 08:06:02 GMT
  529. >
  530. >
  531. > I'd like to be able to do integation on improper integrals (integrals
  532. > that do not exist using normal mathematical normal integration) by
  533. > using cauchy's defintion of integration.
  534. >
  535. >example, I'd like to say somthing like
  536. > >int_cauchy(1/x,x=-1..1);
  537. > and get 0.
  538. >
  539. >this should be nice to have.
  540. >
  541. >anyone knowes if any symbolic math package can do cauchy integration?
  542.  
  543. >thank you,
  544. >/Nasser
  545.  
  546. ----------------------------------------------------------------
  547.  
  548. Article 1298 of sci.math.symbolic:
  549. >From: FC03@NS.CC.LEHIGH.EDU (Frederick W. Chapman)
  550. Newsgroups: sci.math.symbolic
  551. Subject: RE: MAPLE: will it support Cauchy principle value integrals?
  552. Date: 9 Jul 91 20:06:51 GMT
  553.  
  554.  
  555. Until such a time as Maple has a built-in facility for computing Principal
  556. Value (P.V.) integrals, you might try defining a Maple procedure which will
  557. compute P.V. integrals directly from the definition.  Here is an example of
  558. such a procedure:
  559.  
  560. -------------------------  Sample Maple Procedure  -------------------------
  561.  
  562. # Procedure:  'pvint' (version 1.0) for Maple V5.0.
  563. # Released:   July 9, 1991.
  564. # Author:     Frederick W. Chapman (FC03@NS.CC.LEHIGH.EDU).
  565.  
  566. pvint := proc(f, x, a, b, s)
  567.  local i1, i2, eps;
  568.  
  569. # Declare local variable 'eps' to be non-negative, which helps with the
  570. # simplification of some P.V. integrals.
  571.  
  572. signum(eps) := 1;
  573.  
  574. # Now compute the Principal Value integral of 'f' with respect to 'x' from
  575. # 'a' to 'b', with a singularity at 's'.
  576.  
  577. i1 := int(f, x = a .. (s-eps));
  578. i2 := int(f, x = (s+eps) .. b);
  579. simplify(i1 + i2);
  580. limit (", eps=0, right);
  581.  
  582. end;
  583.  
  584. -------------------------  End of Maple Procedure  -------------------------
  585.  
  586. If you create a file called `pvint.txt` which contains the above (comments
  587. lines, which begin with a "#", are not essential), then you can load the
  588. above procedure whenever you want to by entering
  589.  
  590.      read `pvint.txt`;
  591.  
  592. at the Maple prompt.  (Note the use of *backwards* single quotes to delimit
  593. the filename!)
  594.  
  595. I do not claim that this procedure works flawlessly, or make any guarantees
  596. whatsoever as to the correctness of the results that it will furnish.
  597. (Translated: "Use at your own risk.") However, it does work reasonably well
  598. on the examples given below; exceptions are noted.  I would recommend that
  599. you exercise some caution, for as you will see, Maple has a strange way of
  600. handling the natural logarithm function, especially in the context of finding
  601. an antiderivative for 1/x.  (This is not *my* fault, though!)
  602.  
  603. If anyone gives this procedure a try, I would be interested in knowing (via
  604. e-mail) how well it works for you, if you make any improvements, etc.
  605.  
  606. Here is a Maple session illustrating the use of the procedure 'pvint'.
  607.  
  608. ---------------  Session Using Maple/386 V5.0 for DOS Machines  ---------------
  609.  
  610. # Load the procedure into Maple:
  611.  
  612. > read `pvint.txt`;
  613.  
  614. pvint := proc(f,x,a,b,s)
  615.          local i1,i2,eps;
  616.              signum(eps) := 1;
  617.              i1 := int(f,x = a .. s-eps);
  618.              i2 := int(f,x = s+eps .. b);
  619.              simplify(i1+i2);
  620.              limit(",eps = 0,right)
  621.          end
  622.  
  623.  
  624. # Compute the Principal Value integral of '1/x' w.r.t. 'x', from -1 to 1,
  625. # cutting out the singularity at 0:
  626.  
  627. > pvint(1/x, x, -1, 1, 0);
  628.  
  629.                                        0
  630.  
  631.  
  632. # Now declare 'a' and 'b' to be non-negative:
  633.  
  634. > signum(a) := 1;
  635.  
  636.                                  signum(a) := 1
  637.  
  638. > signum(b) := 1;
  639.  
  640.                                  signum(b) := 1
  641.  
  642.  
  643. # Compute the same P.V. integral, but from '-a' to 'b' (i.e., over a not
  644. # necessarily symmetric interval):
  645.  
  646. > pvint(1/x, x, -a, b, 0);
  647.  
  648.                                 - ln(a) + ln(b)
  649.  
  650.  
  651. # Looks fine.  Now declare 'aa' to be negative.
  652.  
  653. > signum (aa) := -1;
  654.  
  655.                                 signum(aa) := -1
  656.  
  657.  
  658. # Compute the P.V. integral again, but from 'aa' to 'b':
  659.  
  660. > pvint(1/x, x, aa, b, 0);
  661.  
  662.                              Pi I - ln(aa) + ln(b)
  663.  
  664.  
  665. YUCK!!!  Maple apparently extends the definition of the usual (real) natural
  666. logarithm, ln(x) for x > 0, to a logarithm defined on the punctured complex
  667. plane, ln(z) for z = r*exp(I*t), r > 0, and t in the half-closed interval
  668. (-Pi, Pi]; Maple's complex logarithm defines ln(z) to be ln(r) + I*t.  Thus,
  669. in the example where we integrated from '-a' to 'b', Maple simplified the
  670. ln(-a), with a >= 0, to ln(a) + Pi*I; the two Pi*I's canceled, which is why
  671. we never saw them in that example.  We can "reenact" these steps explicitly
  672. with the following commands:
  673.  
  674.  
  675. > subs(aa=-a, ");
  676.  
  677.                              Pi I - ln(- a) + ln(b)
  678.  
  679. > simplify(");
  680.  
  681.                                 - ln(a) + ln(b)
  682.  
  683.  
  684. Although invoking this complex logarithm in this way gives answers which
  685. simplify to the correct answers, I feel extremely uncomfortable with this use
  686. of this particular complex logarithm, for the following reasons:
  687.  
  688. (1) The complex logarithm defined by Maple is not continuous (in the topology
  689. of the usual norm on the complex plane) along the negative real axis, and is
  690. certainly not an antiderivative of 1/z on the punctured complex plane.  There
  691. is no antiderivative of 1/z which is defined for every non-zero complex 'z'!
  692. Yet Maple is using this particular complex logarithm as an antiderivative for
  693. 1/x.
  694.  
  695. (2) It would be better -- and much simpler -- if Maple were to use the
  696. real-valued real-variable function, ln(abs(x)), rather than a complex
  697. logarithm as an antiderivative of 1/x; ln(abs(x)) is an antiderivative for
  698. 1/x for all non-zero real 'x'.
  699.  
  700.  
  701. # Compute the P.V. integrals of some other functions:
  702.  
  703. > pvint(1/x^2, x, -1, 1, 0);
  704.  
  705.                                     infinity
  706.  
  707.  
  708. # i.e., the P.V. integral above diverges.  This one converges:
  709.  
  710.  
  711. > pvint(tan(x), x, 0, Pi, Pi/2);
  712.  
  713.                                        0
  714.  
  715.  
  716. # Maple refuses to evaluate this P.V. integral:
  717.  
  718. > pvint(signum(x), x, -1, 1, 0);
  719.  
  720.                           - eps                   1
  721.                             /                     /
  722.                            |                     |
  723.                limit       |    signum(x) dx +   |  signum(x) dx
  724.                eps -> 0+   |                     |
  725.                           /                     /
  726.                           -1                   eps
  727.  
  728. > simplify(");
  729.  
  730.                           - eps                   1
  731.                             /                     /
  732.                            |                     |
  733.                limit       |    signum(x) dx +   |  signum(x) dx
  734.                eps -> 0+   |                     |
  735.                           /                     /
  736.                           -1                   eps
  737.  
  738. > eval(");
  739.  
  740.                           - eps                   1
  741.                             /                     /
  742.                            |                     |
  743.                limit       |    signum(x) dx +   |  signum(x) dx
  744.                eps -> 0+   |                     |
  745.                           /                     /
  746.                           -1                   eps
  747.  
  748.  
  749. # However, Maple will compute the P.V. integral if we specify the function
  750. # signum(x) in the essentially equivalent form abs(x)/x:
  751.  
  752. > pvint(abs(x)/x, x, -1, 1, 0);
  753.  
  754.                                        0
  755.  
  756.  
  757. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  758. Frederick W. Chapman (N3IJC)          Campus Phone:  (215) 758-3218
  759. User Services Group                   Network Server UserID:  FC03
  760. Computing Center                      Internet:  FC03@NS.CC.LEHIGH.EDU
  761. Lehigh University                     Bitnet:  FC03@LEHIGH
  762.  
  763. -----------------------------------------------------------------------------
  764.  
  765.     The symbol "->" in the following examples is the SymbMath prompt.
  766.  
  767. ->inte(1/x, (x from -1 to 1))
  768. 0
  769. ->inte(1/x, (x from -1 to 2))
  770. ln(2)
  771. ->inte(1/x, (x from -2 to 2))
  772. 0
  773. ->inte(sgn(x), (x from -2 to 2))
  774. 0
  775. ->inte(sgn(x), (x from -1 to 2))
  776. 1
  777. ->inte(tan(x), (x from 0 to pi))
  778. 0
  779.  
  780. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  781.  
  782.     SymbMath 1.3B can solve the following problems in the textbook,
  783. Problems 3, 11, 12, 15, 29, and 30, but cannot solve Problems 
  784. 16 and 22 (not output), 23.
  785.  
  786. ------------------------------------------------------------
  787.  
  788. Article 1294 of sci.math.symbolic:
  789. >From: alex@IASTATE.EDU (Roger Alexander)
  790. Newsgroups: sci.math.symbolic
  791. Subject: Re: MAPLE: will it support Cauchy principle value integration?
  792. Date: 8 Jul 91 22:53:13 GMT
  793.  
  794.  
  795.     Here at ISU, we have been using Mma in elementary Calculus for
  796. a couple of years now, and have accumulated a folder full of such
  797. anomalies.  A few weeks ago I mailed the whole batch to bugs@wri.com.
  798.  
  799.     You can understand the strange values returned by
  800. Integrate[f,{x,a,b}] as follows: there exist (1) a contour connecting
  801. a and b in the complex x-plane, and (2) a function F analytic in a
  802. neighborhood of that contour satisfying F'[x] = f[x] there, such that
  803. the result delivered by Mma is F[b] - F[a].  The anomalies in
  804. Integrate[] are a result of the unpredictable choice of contour and
  805. analytic branch F.
  806.  
  807.     WRI refer to this as the "integration branch cut problem."
  808. >From my correspondence with them, I believe that they regard it as a
  809. serious and annoying problem for users, and find it a difficult one
  810. for developers to solve in a satisfactory way.  It is under active
  811. study.  I have received no indication that anything will change with
  812. Mma 2.0.
  813.  
  814.     Attached here is part of what I sent to WRI.  The sessions ran
  815. on a DEC 5000, but the anomalies were all noticed first on MAC LE/30's
  816. or IIcx's -- all Mma 1.2.  The transcript includes some output from
  817. Macsyma for comparison.  The version of Macsyma referred to runs on a
  818. Sun 3/60; it displays:
  819.  
  820.         This is Sun UNIX MACSYMA Release 309.6.
  821.  
  822.  
  823. I would like to note that we no longer use the Swokowski textbook
  824. mentioned in the report.
  825.  
  826.  
  827.                      o /
  828. --------Cut Here------X---------snip-snip-------------------------
  829.                      o \
  830.  
  831.  
  832. Mathematica (DEC RISC) 1.2 (September 10, 1990) [With pre-loaded data]
  833. by S. Wolfram, D. Grayson, R. Maeder, H. Cejtin,
  834.    S. Omohundro, D. Ballman and J. Keiper
  835. with I. Rivin and D. Withoff
  836. Copyright 1988,1989,1990 Wolfram Research Inc.
  837.  -- X11 windows graphics initialized -- 
  838.  
  839. In[1]:= Integrate[x^(-1/3)/(1+x),{x,0,Infinity}]
  840.  
  841.                               1
  842. Out[1]= -(Sqrt[3] ArcTan[-(-------)]) + Sqrt[3] ArcTan[ComplexInfinity]
  843.                            Sqrt[3]
  844.  
  845. (* Mathematica must be told how to simplify this.  However:
  846.  
  847.         This is Sun UNIX MACSYMA Release 309.6.
  848.  
  849.         (c1) integrate(x^(-1/3)/(1+x),x,0,inf);
  850.  
  851.                                              2 %pi
  852.         (d1)                                -------
  853.                                             sqrt(3)
  854. *)  
  855.  
  856.  
  857. In[2]:= Integrate[1/(1+x^6),{x,0,Infinity}]
  858.  
  859.         Pi   ArcTan[-Sqrt[3]]   ArcTan[Sqrt[3]]
  860. Out[2]= -- - ---------------- - --------------- + Sqrt[3] (-Infinity) + 
  861.         3           6                  6
  862.  
  863. >    Sqrt[3] (Infinity)
  864.  
  865. (*  Pi/3 appears to be a principal value, but the integral converges:
  866.  
  867.     (c2) integrate(1/(1+x^6),x,0,inf);
  868.     
  869.                                           %pi
  870.     (d2)                                  ---
  871.                                            3
  872. *)
  873.  
  874. (*
  875.     The following problems are taken from Swokowski's Calculus 
  876. book.  They cause Mathematica to fail because of a singularity in 
  877. the interior of the interval of integration:
  878.  
  879.         Section 10.4 Problems 3, 11, 12, 15, 16, 22, 23, 27, 29.
  880.  
  881. The comments "INTEGRAL IS DIVERGENT" and "Principal Value" come from
  882. Macsyma.  Mma gives no indication that anything is amiss.
  883.  
  884. *)
  885.  
  886. In[4]:= Integrate[1/x^2,{x,-3,1}]
  887.  
  888.           4
  889. Out[4]= -(-)                            (* INTEGRAL IS DIVERGENT *)
  890.           3
  891.  
  892. In[5]:= Integrate[1/(x+1)^3,{x,-2,2}]
  893.  
  894.         4
  895. Out[5]= -                               (* Principal Value *)
  896.         9
  897.  
  898. In[6]:= Integrate[x^(-4/3),{x,-1,1}]
  899.  
  900. Out[6]= -6                              (* INTEGRAL IS DIVERGENT *)
  901.  
  902. In[7]:= Integrate[1/x,{x,-1,2}]
  903.  
  904. Out[7]= -Log[-1] + Log[2]
  905.  
  906. (*
  907.  
  908.     (c7) integrate(1/x,x,-1,2);
  909.     Principal Value
  910.     (d7)                                log(2)
  911.  
  912. *)
  913.  
  914. In[8]:= Integrate[1/(x^2-x-2),{x,0,4}]
  915.  
  916.         -Log[-2]   Log[2]   Log[5]
  917. Out[8]= -------- + ------ - ------
  918.            3         3        3
  919. (*
  920.  
  921.     (c8) integrate(1/(x^2-x-2),x,0,4);
  922.     Principal Value
  923.                                          log(5)
  924.     (d8)                               - ------
  925.                                            3
  926.  
  927. *)
  928.  
  929. In[9]:= Integrate[1/(x Log[x]^2),{x,1/E,E}]
  930.  
  931. Out[9]= -2                             (* INTEGRAL IS DIVERGENT *)
  932.  
  933. In[10]:= Integrate[(1/x^2)Cos[1/x],{x,-1,2}]
  934.  
  935.                        1
  936. Out[10]= Sin[-1] - Sin[-]              (* INTEGRAL IS DIVERGENT *)
  937.                        2
  938.  
  939. In[12]:= Integrate[1/(x-4)^2,{x,0,Infinity}]
  940.  
  941.            1
  942. Out[12]= -(-)                          (* INTEGRAL IS DIVERGENT *)
  943.            4
  944.  
  945. In[13]:= Integrate[1/(x+2),{x,-Infinity,0}]
  946.  
  947. Out[13]= -Infinity                     (* INTEGRAL IS DIVERGENT *)
  948.  
  949.  
  950. (*    The "integration branch cut problem" afflicts NIntegrate as
  951. well.  Consider the following examples discovered by my colleagues
  952. Jerry Mathews and Bruce Wagner.  
  953. *)
  954.  
  955.  
  956. (*    First we observe agreement between Integrate and NIntegrate.    *)
  957.  
  958. In[34]:= Integrate[((Cos[x])^2)^(3/2),{x,Pi/2,Pi}]
  959.  
  960.            2
  961. Out[34]= -(-)
  962.            3
  963.  
  964. In[35]:= NIntegrate[((Cos[x])^2)^(3/2),{x,Pi/2,Pi}]
  965.  
  966. Out[35]= -0.666667
  967.  
  968.  
  969. (*   Calculus 2, MMa 0.  Integrate can also disagree with NIntegrate.   *)
  970.  
  971.  
  972. In[36]:= Integrate[1/(x*Sqrt[5x^2-3]),{x,-3,-1}]
  973.  
  974.                           Sqrt[3]                    -Sqrt[3]
  975.          Sqrt[3] ArcCos[-(-------)]   Sqrt[3] ArcCos[---------]
  976.                           Sqrt[5]                    3 Sqrt[5]
  977. Out[36]= -------------------------- - -------------------------
  978.                      3                            3
  979. In[37]:= N[%]
  980.  
  981. Out[37]= 0.360798
  982.  
  983. In[38]:= NIntegrate[1/(x*Sqrt[5x^2-3]),{x,-3,-1}]
  984.  
  985. Out[38]= -0.360798
  986.  
  987.                      o /
  988. --------Cut Here------X---------snip-snip-------------------------
  989.                      o \
  990.  
  991. *___________________________________________________________________*
  992. | Roger Alexander        |   "Of the seven dwarves, only Dopey had  |
  993. | alex@iastate.edu       | a shaven face.  This should tell us      |
  994. | Expressing my opinion  | something about the custom of shaving."  |
  995. | is part of my *job*.   |   -- Tom Robbins, <Skinny Legs and All>  |
  996. *________________________|__________________________________________*
  997.  
  998. --------------------------------------------------------------------
  999.  
  1000.     In the following, "->" is the SymbMath prompt for input. The 
  1001. output "inf" of integration means divergence of integration.
  1002.  
  1003. ************ Problem 3 **********************
  1004.  
  1005. ->inte(1/x^2, (x from -3 to 0-zero)) + inte(1/x^2, (x from 0+zero to 1))
  1006.  
  1007. inf
  1008.  
  1009. ********** Problem 11 **********************
  1010.  
  1011. ->y=1/(x+1)^3
  1012. ->inte(y, (x from -2 to -1-zero)) + inte(y, (x from -1+zero to 2))
  1013.  
  1014. (1/2) + 3^(-2)*(-1/2)
  1015.  
  1016. **************** Problem 12 *********************
  1017.  
  1018. ->inte(x^(-4/3), (x from -1 to 0-zero))+inte(x^(-4/3), (x from 0+zero to 1))
  1019.  
  1020. (-6) + 6*zero^(-1/3)
  1021. ->subs(zero=0 to last)
  1022.  
  1023. inf
  1024.  
  1025. ******************* Problem 15 ***********************
  1026.  
  1027. ->inte(1/x, (x from -1 to 2))
  1028.  
  1029. ln(2)
  1030.  
  1031. ******************* Problem 16 **************************
  1032.  
  1033. ->y=1/(x^2-x-2)
  1034. ->inte(y, (x from 0 to 2-zero))+inte(y, (x from 2+zero to 4))
  1035.  
  1036. **************** Problem 22 *****************************
  1037.  
  1038. ->inte(1/(x*ln(x)^2), (x from 1/e to e))
  1039.  
  1040. ************** Problem 23 ************************
  1041.  
  1042. ->y=1/x^2*cos(1/x)
  1043. ->inte(y, (x from -1 to 0-zero)) + inte(y, (x from 0+zero to 2))
  1044.  
  1045. ((3/2) - inf)* undefined: 1/0
  1046.  
  1047. *************** Problem 29 **********************
  1048.  
  1049. ->y=1/(x-4)^2
  1050. ->inte(y, (x from 0 to 4-zero)) + inte(y, (x from 4+zero to inf))
  1051.  
  1052. inf
  1053.  
  1054. *************** Problem 30 ************************
  1055.  
  1056. ->inte(1/(x+2), (x from -inf to 0))
  1057.  
  1058. -inf + ln(2)
  1059.  
  1060. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1061.  
  1062.     Here are some examples that Mathemtica cannot find solutions
  1063. of differential equations.
  1064.  
  1065. ****************** Example #1 ****************************
  1066.  
  1067. Article 1529 of sci.math.symbolic:
  1068. >From: sheyn@bucsf.bu.edu (Igor Sheyn)
  1069. Newsgroups: sci.math.symbolic
  1070. Subject: MMa and O.D.E.
  1071. Date: 10 Sep 91 15:39:52 GMT
  1072. Organization: Computer Science Department, Boston University, Boston, MA, USA
  1073.  
  1074. As far as I understand Mma cannot solve diff. eq. where the solution 
  1075. would be implicit funnction y of x. I am talking about 1.2 version. 
  1076. Is the situation in 2.0 the same? What about other packages
  1077. ( like maple, derive, reduce etc.)?
  1078.  
  1079. ---------------------------------------------------------
  1080.  
  1081. Article 1522 of sci.math.symbolic:
  1082. >From: jpg@spectre.unm.edu (Jeffrey P. Golden)
  1083. Newsgroups: sci.math.symbolic
  1084. Subject: MMa and O.D.E.
  1085. Date: 11 Sep 91 22:25:57 GMT
  1086. Organization: Dept. of Math & Stat, University of New Mexico, Albuquerque
  1087.  
  1088.  
  1089. > Date: 10 Sep 91 15:39:52 GMT
  1090. > From: sheyn@bucsf.bu.edu (Igor Sheyn)
  1091. > Organization: Computer Science Department, Boston University, Boston, MA, USA
  1092.  
  1093. > As far as I understand Mma cannot solve diff. eq. where the solution 
  1094. > would be implicit function y of x.  I am talking about 1.2 version. 
  1095. > Is the situation in 2.0 the same?  What about other packages 
  1096. > (like maple, derive, reduce etc.)?
  1097.  
  1098. I asked Igor for a concrete example to work with.  He sent me:
  1099.  
  1100. > Date: Wed, 11 Sep 91 09:23:31 -0400
  1101. > From: sheyn@bucsf.bu.edu (Igor Sheyn)
  1102. > OK, consider the family of curves x+y+Log[y]=c; 
  1103. > y is implicitly a function of x.
  1104. > Implicit diff. gives 1+y'[x](1+1/y[x])==0; y'[x]==-y[x]/(y[x]+1);
  1105. > Mathematica given this eq. as input to DSolve says that built-in 
  1106. > procedure can't solve it.
  1107.  
  1108. Using MACSYMA:
  1109.  
  1110. (c1) depends(y,x)$
  1111.  
  1112. (c2) ode2(diff(y,x) = -y/(y+1),y,x);
  1113.  
  1114. (d2)                   - log(y) - y = x + %c
  1115.  
  1116. (c3) method;
  1117.  
  1118. (d3)                         separable
  1119.  
  1120. >From: Jeffrey P. Golden <jpg@ALLEGHENY.SCRC.Symbolics.COM>
  1121. Organization: Symbolics MACSYMA Division
  1122.  
  1123. ****************** Example #2 *****************************
  1124.  
  1125. Article 1553 of sci.math.symbolic:
  1126. >From: leach@images.cs.und.ac.za
  1127. Newsgroups: sci.math.symbolic
  1128. Subject: Solution of differential equation
  1129. Date: 23 Sep 91 06:03:03 GMT
  1130. Organization: Univ. Natal, Durban, S. Africa
  1131.  
  1132. I have tried the following equation on Mathemtica (V1.2) MSDOS 386/7.
  1133.  
  1134.                   y'[x] = y[x]^(1/2)
  1135.                   y[0] = 0
  1136.  
  1137. DSolve could not handle it. (It rarely solves anything!!), and the 
  1138. RungeKutta package only gave me the solution
  1139.              
  1140.                     y[x]=0
  1141.  
  1142. Obviously, there is another solution viz.
  1143.  
  1144.                    y[x] = (x/2)^2   
  1145.  
  1146. Can anyone run the original two equations through any package they have 
  1147. and tell me the results. I want to see if any package will actually give 
  1148. both or at least the other equation.
  1149.  
  1150. Kesh Govinder
  1151. leach@images.cs.und.ac.za
  1152.  
  1153. ------------------------------------------------------------
  1154.  
  1155. Article 1556 of sci.math.symbolic:
  1156. >From: hanche@imf.unit.no (Harald Hanche-Olsen)
  1157. Newsgroups: sci.math.symbolic
  1158. Subject: Re: Solution of differential equation
  1159. Date: 23 Sep 91 17:25:22 GMT
  1160. Organization: The Norwegian Institute of Technology, Trondheim, Norway.
  1161.  
  1162. In article <1991Sep23.060303.12010@images.cs.und.ac.za> 
  1163. leach@images.cs.und.ac.za writes:
  1164.  
  1165.    I have tried the following equation on Mathemtica (V1.2) MSDOS 386/7.
  1166.  
  1167.              y'[x] = y[x]^(1/2)
  1168.              y[0] = 0
  1169.  
  1170.    DSolve could not handle it. (It rarely solves anything!!)
  1171.  
  1172. Right.  Of course you should realize that this problem has an infinity
  1173. of solutions, of the form y[x]=0 for x < a and y[x]=((x-a)/2)^2.  This
  1174. is the classic example of an equation for which the uniqueness theorem
  1175. breaks down because the righthand side does not satisfy the Lipschitz
  1176. condition.  That said, I am sorry to report that Maple 4.3 only finds
  1177. the solution (1/4)x^2.  But maybe it is too much to expect these
  1178. systems to worry about the breakdown of uniqueness theorems?
  1179. --
  1180. Harald Hanche-Olsen <hanche@imf.unit.no>               I eat my peas with honey
  1181. Division of mathematical sciences                      I've done it all my life
  1182. The Norwegian Institute of Technology             It makes the peas taste funny
  1183. N-7034 Trondheim NORWAY                          But it keeps them on the knife
  1184.  
  1185. ----------------------------------------------------------
  1186.  
  1187.    Shareware version of SymbMath 1.3A can solve these problems. In SymbMath,
  1188. the symbol "->" is the input prompt, and "last" is the last output.
  1189.  
  1190. ****************** Example #1 *************************
  1191.  
  1192. ->1+d(y)/d(x)*(1+1/y)==0
  1193.  
  1194. 1 + d(y)/d(x) + d(y)/(y*d(x)) == 0
  1195. ->inte(last*d(x))
  1196.  
  1197. x + y + ln(sgn(y)*y) == Constant
  1198. ->last-x
  1199.  
  1200. y + ln(sgn(y)*y) == Constant - x
  1201.  
  1202. ***************** Example #2 **************************
  1203.  
  1204. ->d(y)/d(x)==sqrt(y)
  1205.  
  1206. d(y)/d(x) == y^0.5
  1207. ->last*y^(-0.5)
  1208.  
  1209. y^(-0.5)*d(y)/d(x) == 1
  1210. ->inte(last*d(x))
  1211.  
  1212. y^0.5/0.5 == Constant + x
  1213. ->last*0.5
  1214.  
  1215. y^0.5 == 0.5*Constant + 0.5*x
  1216. ->last^2
  1217.  
  1218. y == (0.5*Constant + 0.5*x)^2
  1219.  
  1220. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1221.  
  1222.     Here is some bugs of sqrt(x^2) and integrals of abs(x) in 
  1223. Maple V and Mathematica 1.2 and 2.0.
  1224.  
  1225. ---------------------------------------------------------------------
  1226.  
  1227. Article 1634 of sci.math.symbolic:
  1228. >From: deghare@daisy.waterloo.edu (Dave Hare)
  1229. Newsgroups: sci.math.symbolic
  1230. Subject: Re: Bug in Maple V
  1231. Date: 7 Oct 91 00:05:23 GMT
  1232. Organization: University of Waterloo
  1233.  
  1234.  
  1235. In article <1991Oct03.131235.28858@donau.et.tudelft.nl> 
  1236. reeuwijk@dutentb.et.tudelft.nl (C. van Reeuwijk) writes:
  1237. >In <22802@duke.cs.duke.edu> yu@physics.phy.duke.edu (Yu Yun-Liang) writes:
  1238. >
  1239. >
  1240. >>Dear Maple Users,
  1241. >
  1242. >>      I found a bug in the procedure `@` in Maple V, see the following
  1243. >>session.
  1244. >
  1245. >How about this one:
  1246. >
  1247. >    |\^/|      MAPLE V
  1248. >._|\|   |/|_.  Copyright (c) 1981-1990 by the University of Waterloo.
  1249. > \  MAPLE  /   All rights reserved.  MAPLE is a registered trademark of
  1250. > <____ ____>   Waterloo Maple Software.
  1251. >      |        Type ? for help.
  1252. >> sqrt(x*x);
  1253. >                                       x <-- should be abs(x)
  1254.  
  1255. Unfortunately, that is also wrong.  Assuming you want to use the principal
  1256. branch, the correct answer is
  1257.  
  1258.         sqrt(x^2) = s(x)*x
  1259.  
  1260. where
  1261.                 /  1       if Re(x) > 0 or Re(x) = 0 and Im(x) > 0
  1262.         s(x) = <   0       if x = 0
  1263.                 \ -1       otherwise
  1264.  
  1265. (The value s(0) is not important for this application, but it is reasonable
  1266. to define it to be 0 for other purposes.)
  1267.  
  1268. I think it is important to keep in mind that to all intents and purposes
  1269. functions containing "abs" cannot be integrated symbolically, and can be quite
  1270. hard to integrate numerically.  Thus it is not simply a matter of replacing
  1271. the (sometimes) invalid transformation sqrt(x^2) -> x with the correct one,
  1272. for this would effectively neuter much of the symbolic machinery in use
  1273. in Maple.  Rather, a mechanism must be developed which allows for properties
  1274. to be asserted which indicate when such a transformation is valid.  
  1275.  
  1276. Experience with other symbolic mathematics programs has shown that it is
  1277. difficult to make such a mechanism user intelligible, let alone user friendly.
  1278.  
  1279. Dave Hare
  1280.  
  1281. ----------------------------------------------------------------------
  1282.  
  1283. Article 1690 of sci.math.symbolic:
  1284. >From: burnetas@andromeda.rutgers.edu (Apostolos Burnetas)
  1285. Newsgroups: sci.math.symbolic
  1286. Subject: Mathematica (Inconsistency?)
  1287. Date: 22 Oct 91 00:15:57 GMT
  1288. Organization: Rutgers Univ., New Brunswick, N.J.
  1289.  
  1290.  
  1291. When I ask mathematica to compute Sqrt[a^2] I get back the answer
  1292. a and not the correct Absolute[a]. Is there any way around this difficulty?
  1293.  
  1294. Please note that this works fine if a has a certain value.
  1295. My problem is how to get the correct answer with general a.
  1296.  
  1297. {personal e-mail : burnetas@andromeda.rutgers.edu }
  1298.  
  1299. -----------------------------------------------------
  1300.  
  1301. Article 1710 of sci.math.symbolic:
  1302. >From: gjc@mitech.com (George J. Carrette)
  1303. Newsgroups: sci.math.symbolic
  1304. Subject: Re: Mathematica (Inconsistency?)
  1305. Date: 24 Oct 91 10:39:31 GMT
  1306. Organization: Mitech Corporation, Concord MA
  1307.  
  1308. In article <1991Oct22.015749.1581@blaze.cs.jhu.edu>,
  1309. stiller@blaze.cs.jhu.edu (Lewis Stiller) writes:
  1310. > In Mathematica 2.0, Sqrt[a^2] evaluates to Sqrt[a^2], unless
  1311. > PowerExpand is explicitly applied to the expression. 
  1312.  
  1313. I suppose then in Mathematica 3.0, Integrate(x^n,x) will evaluate to 
  1314. Integrate(x^n,x) unless IntegrateExpand is explicitly applied to the 
  1315. expression.
  1316.  
  1317. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1318.  
  1319.     SymbMath 1.4 easily solve these problems. In the following examples,
  1320. a symbol "->" is the SymbMath input prompt, sgn(a)=1 declares a>0, and sgn(b)
  1321. =-1 declares b<0.
  1322.  
  1323. *************** Problem 1: reduction of sqrt(x^2) *****************
  1324.  
  1325. ->sgn(a)=1
  1326. ->sqrt(a^2)
  1327.  
  1328. a
  1329. ->sgn(b)=-1
  1330. ->sqrt(b^2)
  1331.  
  1332. (-b)
  1333. ->sqrt(x^2)
  1334.  
  1335. x*sgn(x)
  1336.  
  1337. ******************** Problem 2: integral of abs(x) *********************
  1338.  
  1339. ->inte(abs(x), x from -1 to 1)
  1340.  
  1341. 1
  1342. ->inte(abs(x)^6*d(x))
  1343.  
  1344. Constant + (1/7)*x*abs(x)^6
  1345.  
  1346.